package au.com.acpfg.proteomics;
import org.knime.core.data.StringValue;
import org.knime.core.node.defaultnodesettings.DefaultNodeSettingsPane;
import org.knime.core.node.defaultnodesettings.DialogComponentBoolean;
import org.knime.core.node.defaultnodesettings.DialogComponentButton;
import org.knime.core.node.defaultnodesettings.DialogComponentColumnNameSelection;
import org.knime.core.node.defaultnodesettings.DialogComponentFileChooser;
import org.knime.core.node.defaultnodesettings.DialogComponentStringSelection;
import org.knime.core.node.defaultnodesettings.SettingsModelBoolean;
import org.knime.core.node.defaultnodesettings.SettingsModelString;
/**
* <code>NodeDialog</code> for the "MinProteinList" Node.
* Uses a greedy set cover algorithm to identify the minimal set of proteins which can explain the observed peptides
*
* This node dialog derives from {@link DefaultNodeSettingsPane} which allows
* creation of a simple dialog with standard components. If you need a more
* complex dialog please derive directly from
* {@link org.knime.core.node.NodeDialogPane}.
*
* @author Andrew Cassin
*/
public class MinProteinListNodeDialog extends DefaultNodeSettingsPane {
/**
* New pane for configuring the MinProteinList node.
*/
protected MinProteinListNodeDialog() {
final SettingsModelString matches = new SettingsModelString(MinProteinListNodeModel.CFGKEY_PEPTIDES, "Peptides");
final SettingsModelString accsn = new SettingsModelString(MinProteinListNodeModel.CFGKEY_PROTEIN, "Protein");
final String[] items = new String[] {
"Minimum Set Cover (all proteins equal cost)",
"Minimum Set Cover (Unique Peptide Weighting, experimental)"
};
addDialogComponent(new DialogComponentColumnNameSelection(accsn, "Accession Column", 0, true, StringValue.class));
addDialogComponent(new DialogComponentColumnNameSelection(matches, "Matching Peptides Column", 0, true, StringValue.class));
addDialogComponent(new DialogComponentFileChooser(new SettingsModelString(MinProteinListNodeModel.CFGKEY_SOLVER, "c:/cygwin/bin/glpsol.exe"), "glpk-solver-history"));
addDialogComponent(new DialogComponentStringSelection(new SettingsModelString(MinProteinListNodeModel.CFGKEY_ALGO, items[0]), "Algorithm", items));
}
}